81 #define SLAVE_ADDRESS 0x48
87 WDT_A_hold(WDT_A_BASE);
91 GPIO_setAsPeripheralModuleFunctionInputPin(
96 EUSCI_B_I2C_initSlaveParam
param = {0};
97 param.slaveAddress = 0x48;
98 param.slaveAddressOffset = EUSCI_B_I2C_OWN_ADDRESS_OFFSET0;
99 param.slaveOwnAddressEnable = EUSCI_B_I2C_OWN_ADDRESS_ENABLE;
100 EUSCI_B_I2C_initSlave(EUSCI_B0_BASE, &
param);
102 EUSCI_B_I2C_enable(EUSCI_B0_BASE);
104 EUSCI_B_I2C_clearInterrupt(EUSCI_B0_BASE,
105 EUSCI_B_I2C_TRANSMIT_INTERRUPT0 +
106 EUSCI_B_I2C_STOP_INTERRUPT
109 EUSCI_B_I2C_enableInterrupt(EUSCI_B0_BASE,
110 EUSCI_B_I2C_TRANSMIT_INTERRUPT0 +
111 EUSCI_B_I2C_STOP_INTERRUPT
115 __bis_SR_register(CPUOFF + GIE);
119 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
120 #pragma vector=USCI_B0_VECTOR
122 #elif defined(__GNUC__)
123 __attribute__((interrupt(USCI_B0_VECTOR)))
127 switch(__even_in_range(UCB0IV, USCI_I2C_UCBIT9IFG))
131 case USCI_I2C_UCALIFG:
133 case USCI_I2C_UCNACKIFG:
135 case USCI_I2C_UCSTTIFG:
137 case USCI_I2C_UCSTPIFG:
140 case USCI_I2C_UCRXIFG3:
142 case USCI_I2C_UCTXIFG3:
144 case USCI_I2C_UCRXIFG2:
146 case USCI_I2C_UCTXIFG2:
148 case USCI_I2C_UCRXIFG1:
150 case USCI_I2C_UCTXIFG1:
152 case USCI_I2C_UCRXIFG0:
154 case USCI_I2C_UCTXIFG0:
155 EUSCI_B_I2C_slavePutData(EUSCI_B0_BASE,
158 case USCI_I2C_UCBCNTIFG:
159 GPIO_toggleOutputOnPin(
164 case USCI_I2C_UCCLTOIFG:
166 case USCI_I2C_UCBIT9IFG:
MPU_initThreeSegmentsParam param